/**	
 * <br>
 * Copyright 2011 Chuan. All rights reserved.<br>
 * <br>			 
 * Package: com.chuan.mantu.service <br>
 * FileName: PicService.java <br>
 * <br>
 * @version
 * @author javacyc@qq.com
 * @created 2012-11-19
 * @last Modified 
 * @history
 */

package com.chuan.mantu.service;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import android.content.Context;
import android.view.View;

import com.chuan.mantu.utils.Const;
import com.chuan.mantu.utils.ShareObj;
import com.chuan.mantu.utils.ViewUtil;
import com.chuan.mantu.vo.Pic;

/**
 * {Activity层从此Service获取可以展现的图片列表<br>
 *  1) 图片资源来源于sport服务，统一下载都本地目录先，然后从本地目录取图片展现<br>
 *  2) 取图片数量可配置（此配置适用于下载图片数量），历史数据可满足随即读取，超过限定设置期限的图片删除，期限可设置<br>
 *  3) 本地文本存放相关用户信息，比如下载图片的日期，当前图片的编号<br>
 *  }
 *  
 *  @author javacyc@qq.com
 *  @created 2012-11-19 下午02:13:29
 *  @lastModified
 *  @history
 */

public class GetPicService {

	/**
	 * 
	 *  ｛调用此方法获取需要展现的图片列表｝
	 *  @param context 当前Context对象
	 *  @param category 动漫分类类别
	 *  @param gesture 手势,down : 更新 <br>
	 *  					up   : 历史<br>
	 *  					default : 初始化<br>
	 *  @return
	 *  @author javacyc@qq.com
	 *  @created 2012-11-19 下午02:47:03
	 *  @lastModified       
	 *  @history
	 */
	public static List<View> getShowPicList(Context context,String category, String gesture){
		List<View> lv = new ArrayList<View>();
		if(!ShareObj.INSTANCE.getPicMap().containsKey(category)){ //初始化
			ShareObj.INSTANCE.getPicMap().put(category, LocalPicService.initPicList(context, category));
			ShareObj.INSTANCE.getCategoryIndexMap().put(category, Const.CATEGORY_DEFAULT_INDEX);
		}
		
		LinkedList<ArrayList<Pic>> list = ShareObj.INSTANCE.getPicMap().get(category);
		int index = ShareObj.INSTANCE.getCategoryIndex(category);
		
		if(gesture.equals(Const.GESTURE_DEFAULT)){ //默认无操作
			ViewUtil.fillListImageView(context, category, lv, list.get(index));
		}
		
		if(gesture.equals(Const.GESTURE_DOWN)){ //下滑
			if(index == 0){	//需要更新数据，同时当前index不变
				ArrayList<Pic> listp = NetPicService.updatePicList(context ,null, category);
				if(!listp.isEmpty()){
					list.addFirst(listp);//更新数据
					ViewUtil.fillListImageView(context, category, lv, list.get(0));					
				}
			}else{
				ViewUtil.fillListImageView(context, category, lv, list.get(index - 1));
				ShareObj.INSTANCE.setCategoryIndex(category, index - 1); //设置当前索引
			}
		}
		
		if(gesture.equals(Const.GESTURE_UP)){ //上滑  浏览历史
			if( (index + 1) == list.size() ){ //浏览至底
				ArrayList<Pic> listp = LocalPicService.getHisPicList(category);
				if(!listp.isEmpty()){
					list.addLast(listp);
					ViewUtil.fillListImageView(context, category, lv, list.get(index + 1));
					ShareObj.INSTANCE.setCategoryIndex(category, index + 1); //设置当前索引
				}
			}else{
				ViewUtil.fillListImageView(context, category, lv, list.get(index + 1));
				ShareObj.INSTANCE.setCategoryIndex(category, index + 1); //设置当前索引
			}
		}
		
		if(!lv.isEmpty()){
			//记录当前浏览的图片名称
			ShareObj.INSTANCE.setCURRENTPICNAME(category,list.get(ShareObj.INSTANCE.getCategoryIndex(category)).get(Const.CURRENT_DEFAULT_INDEX).getName());
		}
		return lv;
	}
	
	
}